In present day automatic contact distribution (ACD) systems, resource selection and allocation algorithms are commonly employed to perform calculations related to timing of operations and service time goals for work items in queue. These calculations are performed, for example, when a telephone call is received at a call center. When such a call is received, it is typically assigned to a pool of resources responsible for answering telephone calls. Furthermore, such calls generally have a service time goal, such as three minutes, which is the goal for an agent to answer the call. These service time goals are useful to help ensure a customer is not waiting to speak to an agent for a long period of time, which may reduce customer satisfaction.
In such ACD systems, contacts incoming to a contact center are answered and handled by a plurality of resources. The ACD system automatically distributes and connects incoming contacts to whatever resource, generally agents, have the skill set suited to handle the contacts and are free, i.e., not handling other contacts at the moment. As used herein, a “contact” refers to any mode or type of contact between two entities, including without limitation voice calls, VoIP, text-chat, e-mail, fax, electronic documents, web forms, voice messages, and video calls, to name but a few.
The contacts are placed in different queues based upon preestablished criteria, such as business/service policies, objectives, and goals for each contact type, and are typically placed in each queue in the order of their arrival and/or priority. Due to the random and peaked nature of inbound contacts from customers, a contact center may become overloaded when no suitable resources are available to handle contacts as the service time goal for the contacts expires. Furthermore, a contact center may have sufficient resources to handle present contacts which have service time goals currently expiring, but may not have enough resources to handle the contacts which have a service time goal at some point in the future.
As is known in the art, it is common for such ACD systems to include algorithms which detect whether service time goals are being met, and also to predict if service time goals are likely to be met in the future. Numerous techniques have been devised for determining an actual or anticipated wait time for each queued item, and the queued items are typically serviced based on the actual and/or anticipated wait time. However, such techniques generally look at only the head of the queue, in order to determine if the contact center is currently behind target, or is in a state of immediate risk. Techniques which are used to predict if service time goals are likely to be met in the future generally only look at the tail of the queue, or the last item in the queue, and make a determination of whether it is predicted that this item will be serviced at or before the service time goal for that work item, and give a yes/no answer as to whether there is a future risk. As will be understood, the last item in the queue may follow a number of items which all have a service time goal which will expire at substantially the same time. Thus, it is possible that the last item in a queue will show no future risk, while there in actuality is a future risk associated with the relatively heavy workload which precedes the last work item in the queue. Accordingly, it would be advantageous to have a method and apparatus which is able to determine future risk, and also determine when such risk will arise and the amount of resources required to correct the potential shortfall in resources.
Another problem with such techniques is that they were designed for real time servicing. As mentioned above, it is common to receive contacts in the form of e-mail, fax, electronic documents, web forms, voice messages, which do not require immediate attention of an agent, but rather are required to be attended to within a preset service time goal period. For example, the contact center may have a service time goal for electronic mail of one business day. Likewise, web forms which are received may have a goal of being answered within two business days. Such contacts are referred to as “back office contacts,” which are placed into a queue which is to be serviced by a back office, meaning that they are not serviced by agents in real time with a contact.
In some ACD systems, such work items are placed in unordered work queues. These items often are received at different times, and have different service goals. Thus, if the items were to be placed in an ordered work pool, with the contacts ordered by the amount of time left to service the contact, each time a contact is added to the queue, the queue may have to be reordered. As will be understood, reordering a work queue can consume a significant amount of resources in a system, thus it may be advantageous to place such work items in an unordered work pool or work queue. One problem with placing contacts in an unordered work pool is that resource allocation algorithms are generally designed to operate using ordered work pools. Thus, it would be advantageous to have an unordered work pool with resource allocation algorithms which are able to assess the work in the unordered work pool to determine a status of the pool and make predictions regarding potential future resource shortfalls for the work pool.